
I am an Associate Professor in the Department of Computer Science at the University of New Hampshire. I am also a member of the artificial intelligence research group at UNH.
Before UNH, I was a Research Staff Member at the IBM’s T. J. Watson Research Center in Yorktown, NY. I received my Ph.D. from University of Massachusetts Amherst in 2010. My advisor was: Shlomo Zilberstein. In 2022/2023 I was also a visiting faculty researcher at Google Research in Mountain View, CA.
I am interested in robust data-driven decision making and in particular in reinforcement learning with limited data sets, risk aversion, and Bayesian models of uncertainty. My application areas include natural resource management, agriculture, and space physics. I had previously worked on applications in precision agriculture, natural resources, renewable energy management, supply chains, advertising, and others.
Publications
If you would like to meet with me, please email me. However, please do not send me AI-generated emails. I generally ignore AI-generated emails.
- Email: mpetrik@cs.unh.edu
- Office Phone: +1-603-862-2682
- Department of Computer Science, Kingsbury N215b, Durham, NH 03824
Kingsbury N233
MW 3:40pm - 5:00pm
In this seminar, we will cover how to make good decisions using machine learning. Reinforcement learning and multi-armed bandits are just some of the methods that combine decision making with machine learning. These methods play a crucial role in countless real problems such as when personalizing websites, navigating robots, managing supply chains and revenue, and even when playing Go!
We will cover how to trade off exploitation and exploration; that is when to act with the current data versus acquiring additional data to make a better decision later. The exploration/exploitation tradeoff is a key challenge in reinforcement learning. We will also cover the related issues of reliability and robustness in machine learning.
Some of the specific topics we will cover are:
- A/B testing and randomized experiments
- Optimizer’s curse
- Thompson sampling, UCB, EXP3
- (Robust) Markov decision processes
- Gittins and Whittle indices
- Tree and policy search
- Covariate shift
The class will start with an overview of fundamental problems, methods, and techniques and will continue with student presentations and a research project.
Statistics and some linear algebra. Machine learning is not a pre-requisite. We will cover topics that are closely related to ML but do not depend on it.
Please see the class homepage for schedule and other up-to-date information.
Kingsbury N233
MW 3:40pm - 5:00pm
In this seminar, we will cover reinforcement learning, or how to make good decisions driven by data. The goal in reinforcement learning is to learn how to act while interacting with a dynamic and complex environment. Reinforcement learning methods can be applied in various domains, such as when managing ecosystems, optimizing website, to robotics, and healthcare.
Our focus will be on reinforcement learning that can learn from batch data sets without interacting with the environment. The algorithms have to learn how to interact with the environment based on a historical data. These batch methods are important when the cost of failure is high, such as in healthcare of agriculture, when using trial and error is impractical.
Some of the topics that we will cover are:
- Markov decision processes: Policy iteration, Value iteration, Linear programming
- Policy evaluation (online and offline): TD, LSTD
- Batch policy improvement: Q-learning, LSPI
- Convex optimization: Linear programming
The focus of the class will be on depth rather than breadth. The main goal of the class is delivering an interesting reinforcement learning group project. As much as possible we will work on the same code-base using a subset of C++, Python, and R. The class will require independent study of reading materials and in-class group problem solving and paper discussions.
Follow the links for free online versions.
Our main textbook will be:
Additional material can be found in:
- Puterman, M. L. (2005). Markov decision processes: Discrete stochastic dynamic programming. John Wiley & Sons, Inc.
- Sutton, R. S., & Barto, A. (1998). Reinforcement learning. MIT Press.
Statistics, some linear algebra and ideally familiarity with machine learning.
Please see the class homepage for schedule and other up-to-date information.
- Kingsbury N233
- MW 3:40pm - 5:00pm
This seminar will cover reinforcement learning. The goal in reinforcement learning is to learn how to act while interacting with a dynamic and complex environment. Instead of trying to cover all reinforcement learning topics, we will focus on the foundations needed to understand other concepts.
- Markov decision processes: Policy iteration, Value iteration, Linear programming
- Value Function Approximation: LSTD, LSPI, ALP, ABP
- Uncertainty: Bandits and Robust Markov Decision Processes
We will use Python, R, or C++ and cover relevant topics from linear algebra, mathematical optimization, and statistics as needed.
Please see the class homepage.
Please see the class homepage for more information.
- Kingsbury N233
- TR 3:40pm - 5:00pm
This seminar will cover reinforcement learning. The goal in reinforcement learning is to learn how to act while interacting with a dynamic and complex environment. Instead of trying to cover all reinforcement learning topics, we will focus on the foundations needed to understand other concepts. Below are some examples of relevant topics:
- Markov decision processes: Policy iteration, Value iteration, Linear programming
- Standard RL methods: SARSA, TD, Q-learning
- Model-based methods: Dyna and others
- Value Function Approximation: LSTD, LSPI, ALP, ABP
- Uncertainty: Exploration and Robustness
We will use Python, R, or C++ and cover relevant topics from linear algebra, mathematical optimization, and statistics as needed.
Richard Sutton, Andrew Barto, Reinforcement Learning: An Introduction, 2018.
Tue & Thu, 12:40 pm - 2:00 pm
Kingsbury N133
See class overview for more information on textbooks, syllabus, assignments, office hours, and grading.
Please use Piazza for questions about assignments.
See the project overview for details on the details of deliverables. The deliverable are due by the end of the day (midnight).
| Date |
Deliverable |
Page Limit |
| 2/24 |
Project description and data sources |
1 |
| 3/07 |
Evaluation methodology |
1 |
| 3/23 |
Method and literature overview |
2 |
| 4/06 |
Preliminary results |
3 |
| 4/27 |
Final report |
7 |
See practice questions for questions you should be able to answer to be ready for the midterm and final exams.
| Date |
Exam |
| 3/21 |
Midterm (take home) |
ISL: James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning
ESL: Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning. Springer Series in Statistics (2nd ed.)
- LAO: Hefferon, J. Linear Algebra (2017)
- LA: Strang, G. Introduction to Linear Algebra. (2016) Also see: online lectures
- LAR: Introductory Linear Agebra with R
- CO: Boyd, S., & Vandenberghe, L. (2004). Convex Optimization.
- RL: Sutton, R. S., & Barto, A. (2012). Reinforcement learning. 2nd edition (forthcoming?)
- RLA: Szepesvari, C. (2013), Algorithms for Reinforcement Learning
- DL: Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning
- MLP: Murphy, K (2012). Machine Learning, A Probabilistic Perspective.
See class overview for more information on the textbook.
The goal of this class is to teach you how to use machine learning to understand data and make predictions in practice. The class will cover the fundamental concepts and algorithms in machine learning and data science as well as a wide variety of practical algorithms. The main topics we will cover are:
- The maximum likelihood principle
- Regression: Linear regression
- Classification: Logistic regression and linear discriminant analysis
- Cross-validation, bootstrap, and over-fitting
- Model selection: Regularization, Lasso
- Nonlinear models: Decision trees, Support vector machines
- Unsupervised: Principal component analysis, k-means
- Advanced topics: Bayes nets and deep learning
The graduate version of the class will cover the same topics in greater depth.
The class will involve hand-on data analysis using machine learning methods. The recommended language for programming assignments is R which is an excellent tool for statistical analysis and machine learning. No prior knowledge of R is needed or expected; the book and lecture will cover a gentle introduction to the language. Experienced students may also choose other alternatives, such as Python or Matlab.
Basic programming skills (scripting languages like Python are OK) and some familiarity with statistics and calculus. If in doubt, please email me.
Please see the main class website for detailed up to date information.
Mon & Wed, 11:10 am - 12:40 pm in Kingsbury N113
The goal of this class is to teach you how to use machine learning to understand data and make predictions in practice. The class will cover the fundamental concepts and algorithms in machine learning and data science as well as a wide variety of practical algorithms. The main topics we will cover are:
- The maximum likelihood principle
- Regression: Linear regression
- Classification: Logistic regression and linear discriminant analysis
- Cross-validation, bootstrap, and over-fitting
- Model selection: Regularization, Lasso
- Nonlinear models: Decision trees, Support vector machines
- Unsupervised: Principal component analysis, k-means
- Advanced topics: Bayes nets and deep learning
The graduate version of the class will cover the same topics in greater depth.
The class will involve hand-on data analysis using machine learning methods. The recommended language for programming assignments is R which is an excellent tool for statistical analysis and machine learning. No prior knowledge of R is needed or expected; the book and lecture will cover a gentle introduction to the language. Experienced students may also choose other alternatives, such as Python or Matlab.
We recommend using the free R Studio for completing programming assignments. R Notebooks are very convenient for producing reproducible reports and we encourage you to use them. Jupyter is a similar alternative for Python.
Basic programming skills (scripting languages like Python are OK) and some familiarity with statistics and calculus. If in doubt, please email me.
See class overview for more information on textbooks, syllabus, assignments, office hours, and grading.
ISL: James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning
Please see the main class website for detailed up-to-date information.
Mon & Wed, 11:10 am - 12:40 pm in Spaulding Life Sciences Hall G26
Fri: 11:00 am (recitation)
The goal of this class is to teach you how to use machine learning to understand data and make predictions in practice. The class will cover the fundamental concepts and algorithms in machine learning and data science as well as a wide variety of practical algorithms. The main topics we will cover are:
- The maximum likelihood principle
- Regression: Linear regression
- Classification: Logistic regression and linear discriminant analysis
- Cross-validation, bootstrap, and over-fitting
- Model selection: Regularization, Lasso
- Nonlinear models: Decision trees, Support vector machines
- Unsupervised: Principal component analysis, k-means
- Advanced topics: Bayes nets and deep learning
The graduate version of the class will cover the same topics in greater depth.
The class will involve hand-on data analysis using machine learning methods. The recommended language for programming assignments is R which is an excellent tool for statistical analysis and machine learning. No prior knowledge of R is needed or expected; the book and lecture will cover a gentle introduction to the language. Experienced students may also choose other alternatives, such as Python or Matlab.
We recommend using the free R Studio for completing programming assignments. R Notebooks are very convenient for producing reproducible reports and we encourage you to use them. Jupyter is a similar alternative for Python.
Basic programming skills (scripting languages like Python are OK) and some familiarity with statistics and calculus. If in doubt, please email me.
See class overview for more information on textbooks, syllabus, assignments, office hours, and grading.
ISL: James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning
Co-taught with Mark Lyon.
Mon & Wed, 9:40 am - 11:00 am
Wed: Recitation
The goal of the class is to teach the foundations that underlie mathematical optimization techniques. The methods play an important role in machine learning, operations research, applied mathematics, industrial engineering.
- Unconstrained optimization methods
- Gradient descent and line search
- Trust region methods
- Newton and Quasi-Newton methods (BFGS)
- Constrained optimization problems
- Lagrange multiplies and KKT conditions
- Linear and quadratic programming
- Convex analysis
MATLAB, Python, R, or Julia
- Calculus
- Some linear algebra background